Color images are generally represented in a computer environment with an independent color value for each pixel. Each color value must consist of three components in order to represent the full range of colors. Since the display monitors that are used with computers utilize RGB (red, green, and blue) as the three color components, computer images are generally represented using this color format.
Images stored in this format generally require a large data set, but also contain a lot of redundancy because of the lack of randomness in a typical image. If the images are part of a moving sequence of images, as in video, the storage requirements are multiplied by the number of frames. Further, the bandwidth requirements to display a video sequence are much higher than can typically be provided in a low cost computer system. It is often desirable to utilize data compression to reduce data storage and bandwidth requirements- Compression algorithms can take advantage of redundancy in the image and the peculiarities of the human vision system.
Several image compression algorithms have been developed which are reasonably effective at reducing the data storage and bandwidth requirements. However, these algorithms have draw-backs when applied to the personal computer industry and consumer markets. Traditional compression algorithms (such as the JPEG and Px64 ISO standards) use a large number of multiply operations. Without special purpose hardware, multiply operations are not efficient on commodity microprocessors (as are used in personal computers). This inefficiency makes these algorithms impractical for motion video compression on personal computers.
Consumer products are often driven by cost which also precludes the use of specialized hardware to implement compression and decompression algorithms at video rates.
Another aspect of the personal computer industry is the wide range of products that are designed to run the same applications. It is desirable to provide applications and algorithms that can run effectively on low performance as well as high performance personal computers. Since compressed data may be generated on one system and subsequently decompressed on another system, it is desirable to have a simple definition for the compressed data "content" that can be decompressed using any one of a number of algorithms, allowing higher image quality to be achieved when higher computational performance is available. This allows high end personal computers to decompress the same compressed image data as low end personal computers, and achieve higher image quality.
Traditional compression algorithms provide only one algorithm for image decompression. To provide for more than one decompression method, the original image data must be redundantly compressed in different ways and redundantly store resulting in more than one compressed image data set. Under such a scenario, three compression techniques can be used, each reducing the storage size of the original image data by one-half, the resulting storage of the three sets of compressed data would be 50% larger than the original. This defeats the purpose of reducing the data storage requirements.
Thus, an object of the invention is a method to compress color images which results in a compressed image data set that can be decompressed using multiple algorithms to achieve higher image quality when more computational power is applied, and allow for lower image quality when processors with lower computational power is applied.
Another object of the invention is a method to compress and decompress color images that can be implemented efficiently on a commodity microprocessor without a hardware multiply instruction, so that it can run efficiently on personal computers without specialized hardware.